package com.edu.exam.enums.grading;

import com.edu.exam.enums.core.BaseEnum;

/**
 * 校验状态枚举
 *
 * 用于标识批阅统计数据的校验状态，支持数据质量管理和验证流程
 *
 * @author System
 * @version 1.0.0
 */
public enum ValidationStatus implements BaseEnum {

    /**
     * 有效 - 数据已通过校验，确认有效
     */
    VALID("VALID", "有效"),

    /**
     * 无效 - 数据未通过校验，确认为无效
     */
    INVALID("INVALID", "无效"),

    /**
     * 待校验 - 数据尚未进行校验
     */
    PENDING("PENDING", "待校验"),

    /**
     * 已过期 - 数据已过期，需要重新校验或更新
     */
    EXPIRED("EXPIRED", "已过期");

    private final String code;
    private final String description;

    ValidationStatus(String code, String description) {
        this.code = code;
        this.description = description;
    }

    @Override
    public String getCode() {
        return code;
    }

    @Override
    public String getDescription() {
        return description;
    }

    /**
     * 从代码创建枚举实例
     *
     * @param code 枚举代码
     * @return 对应的枚举实例
     */
    public static ValidationStatus fromCode(String code) {
        for (ValidationStatus status : values()) {
            if (status.getCode().equals(code)) {
                return status;
            }
        }
        throw new IllegalArgumentException("Unknown validation status code: " + code);
    }

    @Override
    public String toString() {
        return description;
    }
}